package org.easy.file.manager;

import org.easy.file.model.FileModel;
import org.easy.file.monitor.FileTask;
import org.easy.file.monitor.ITask;

import java.util.List;

/**
 * 监控任务管理器
 * @author wuxueli
 */
public interface ITaskManager {

    /**
     * 添加监控任务
     * @param task 任务
     */
    void addTask(ITask task);

    /**
     * 添加监控任务
     * @param taskId 任务ID
     * @param task 任务
     */
    void addTask(String taskId, ITask task);

    /**
     * 获取所有的任务列别
     * @return List<FileTask>
     */
    List<FileModel> getFileTaskList();

    /**
     * 根据ID获取任务
     * @param taskId 任务ID
     * @return ITask
     */
    ITask getTask(String taskId);

    /**
     * 删除任务
     * @param taskId 任务ID
     */
    void delTask(String taskId);

    /**
     * 删除所有任务
     */
    void delAllTask();

    /**
     * 暂停任务
     * @param taskId 任务ID
     */
    void stopTask(String taskId);

    /**
     * 暂停所有任务
     */
    void stopAllTask();

    /**
     * 启动任务
     * @param taskId 任务ID
     */
    void startTask(String taskId);

    /**
     * 启动所有任务
     */
    void startAllTask();
}
